Drilldown এবং Data Exploration হল ডেটা ভিজুয়ালাইজেশনের প্রক্রিয়া যা ব্যবহারকারীদের অনুমতি দেয় যাতে তারা একটি সমষ্টিগত বা সার্বিক চিত্র থেকে আরও বিস্তারিত ডেটাতে প্রবেশ করতে পারে। Google Charts-এ এই দুটি কাস্টমাইজেশন ফিচার ব্যবহার করে আপনি ইন্টারঅ্যাকটিভ ডেটা ভিজুয়ালাইজেশন তৈরি করতে পারেন, যেখানে ব্যবহারকারীরা চার্টের উপাদানগুলির উপর ক্লিক করে আরও গভীরে বিশ্লেষণ করতে পারে।
Drilldown হল একটি প্রক্রিয়া যার মাধ্যমে আপনি একটি চার্ট বা গ্রাফ থেকে আরো বিস্তারিত স্তরে ডেটাতে প্রবেশ করতে পারেন। উদাহরণস্বরূপ, একটি সার্বিক পাই চার্টে ক্লিক করার পর আপনি সেই বিভাগ বা সেগমেন্টের ভিতরে আরও বিস্তারিত তথ্য দেখতে পাবেন। এটি মূলত বড় ডেটা সেটগুলিকে ছোট অংশে বিভক্ত করে।
ধরা যাক, আমাদের একটি Pie Chart আছে যেখানে সাধারণ কিছু তথ্য প্রদর্শিত হচ্ছে এবং ব্যবহারকারী একটি সেগমেন্টে ক্লিক করলে আমরা ড্রিলডাউন তথ্য প্রদর্শন করব। এটি করতে, Google Charts API-তে selection ইভেন্ট ব্যবহার করা হয়।
import { Component } from '@angular/core';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
title = 'Drilldown Example with Google Charts';
chartType = 'PieChart'; // Chart Type
chartData = [
['Category', 'Hours per Day'],
['Work', 8],
['Eat', 2],
['Commute', 2],
['Sleep', 8]
]; // Chart Data
chartOptions = {
title: 'My Daily Activities',
width: 600,
height: 400,
is3D: true
};
drilldownData = {
'Work': [
['Task', 'Hours'],
['Emails', 2],
['Meetings', 3],
['Coding', 3]
],
'Eat': [
['Meal', 'Hours'],
['Breakfast', 1],
['Lunch', 1],
['Dinner', 1]
]
};
// Handle chart selection (drilldown action)
handleChartSelection(event) {
const selectedItem = event.selectedItem;
if (selectedItem) {
const category = this.chartData[selectedItem.row][0]; // Get the category name
const drilldownChartData = this.drilldownData[category];
// Update chart data with drilldown information
this.chartData = drilldownChartData;
this.chartOptions.title = `${category} Details`; // Change title
}
}
}
<h1>{{ title }}</h1>
<google-chart
[type]="chartType"
[data]="chartData"
[options]="chartOptions"
(chartSelection)="handleChartSelection($event)">
</google-chart>
এখানে, আমরা (chartSelection) ইভেন্ট ব্যবহার করে সিলেক্ট করা সেগমেন্ট থেকে ডেটা সংগ্রহ করছি এবং এটি অনুযায়ী ড্রিলডাউন ডেটা সেট করছি। যখন ব্যবহারকারী পাই চার্টে ক্লিক করবে, তখন আমরা সেই সেগমেন্টের ড্রিলডাউন ডেটা দেখাব।
Data Exploration হল ডেটার গভীরে প্রবেশ করা এবং ব্যবহারকারীদের বিভিন্ন দৃষ্টিকোণ থেকে ডেটা বিশ্লেষণ করতে দেওয়ার প্রক্রিয়া। এটি একাধিক ডেটা পয়েন্ট বিশ্লেষণ করে এবং স্বতঃস্ফূর্তভাবে নতুন উপসংহার তৈরি করার জন্য সাহায্য করে। Google Charts API-তে Data Exploration ইন্টারঅ্যাকটিভ চার্টের মাধ্যমে ডেটার ভিন্ন ভিন্ন দিক এবং অংশ খুঁজে বের করার প্রক্রিয়া।
ধরা যাক, আমরা একটি Column Chart তৈরি করছি যেখানে সময়ের সাথে বিক্রির (sales) ডেটা দেখানো হচ্ছে। ব্যবহারকারী বিভিন্ন বছরের বিক্রি বিশ্লেষণ করতে পারেন এবং একটি নির্দিষ্ট বছরের ডেটা ক্লিক করার মাধ্যমে আরও বিশদ ডেটা দেখতে পারবেন।
import { Component } from '@angular/core';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
title = 'Data Exploration with Google Charts';
chartType = 'ColumnChart'; // Chart Type
chartData = [
['Year', 'Sales'],
['2018', 1000],
['2019', 1170],
['2020', 660],
['2021', 1030]
]; // Chart Data
chartOptions = {
title: 'Sales over the Years',
hAxis: { title: 'Year' },
vAxis: { title: 'Sales' },
width: 600,
height: 400
};
drilldownData = {
'2018': [
['Product', 'Sales'],
['Product A', 500],
['Product B', 300],
['Product C', 200]
],
'2019': [
['Product', 'Sales'],
['Product A', 700],
['Product B', 250],
['Product C', 220]
],
'2020': [
['Product', 'Sales'],
['Product A', 300],
['Product B', 200],
['Product C', 160]
],
'2021': [
['Product', 'Sales'],
['Product A', 400],
['Product B', 300],
['Product C', 330]
]
};
// Handle chart selection (exploring data for specific year)
handleChartSelection(event) {
const selectedItem = event.selectedItem;
if (selectedItem) {
const selectedYear = this.chartData[selectedItem.row][0]; // Get the selected year
const detailedData = this.drilldownData[selectedYear];
// Update chart data with more detailed information
this.chartData = detailedData;
this.chartOptions.title = `Sales for ${selectedYear}`; // Change title
}
}
}
<h1>{{ title }}</h1>
<google-chart
[type]="chartType"
[data]="chartData"
[options]="chartOptions"
(chartSelection)="handleChartSelection($event)">
</google-chart>
এখানে, আমরা (chartSelection) ইভেন্ট ব্যবহার করে সিলেক্ট করা বছর থেকে ডেটা সংগ্রহ করছি এবং সেটি অনুযায়ী বিশদ ডেটা (ড্রিলডাউন ডেটা) দেখাচ্ছি।
Drilldown এবং Data Exploration হল শক্তিশালী ফিচার যা Google Charts API-তে ডেটার গভীরে প্রবেশ এবং বিশ্লেষণ করতে সহায়তা করে। Drilldown ব্যবহার করে আপনি একটি সেগমেন্টে ক্লিক করে তার বিশদ তথ্য দেখতে পারেন, এবং Data Exploration ব্যবহার করে আপনি একটি চার্টে প্রদর্শিত ডেটার ওপর বিশ্লেষণ ও অন্যান্য ভিউ নিতে পারেন। এই ফিচারগুলি আপনাকে আপনার ডেটা ভিজুয়ালাইজেশনকে আরও ইন্টারঅ্যাকটিভ এবং ব্যবহারকারী-বান্ধব করতে সহায়তা করে।
Drilldown Chart এমন একটি চার্ট যা ব্যবহারকারীকে মূল ডেটা থেকে বিস্তারিত স্তরে প্রবেশের অনুমতি দেয়। এটি ব্যবহারকারীকে প্রথমে একটি সারাংশ দেখাতে পারে এবং তারপর একটি নির্দিষ্ট ডেটা পয়েন্টে ক্লিক করলে আরও বিস্তারিত তথ্য বা স্তর খুলে দেখাতে পারে। সাধারণত Pie Charts, Bar Charts, Column Charts, Treemaps ইত্যাদিতে Drilldown ব্যবহার করা হয়।
Google Charts API-এ Drilldown ফিচার ব্যবহার করার জন্য Data Hierarchy ব্যবহার করে ডেটার বিভিন্ন স্তর তৈরি করা হয় এবং সেই স্তরের মধ্যে ইন্টারঅ্যাকশন পরিচালনা করা যায়।
এখানে, আমরা একটি Drilldown Chart তৈরি করার প্রক্রিয়া এবং ডেটা হায়ারার্কি ব্যবস্থাপনা দেখাবো।
প্রথমে একটি নতুন Angular প্রজেক্ট তৈরি করুন (যদি আপনার আগে থেকেই কোনো প্রজেক্ট থাকে, তবে সেটি ব্যবহার করতে পারেন):
ng new drilldown-chart-app
cd drilldown-chart-app
Google Charts লাইব্রেরি ব্যবহার করতে angular-google-charts প্যাকেজটি ইন্সটল করতে হবে। এটি ইনস্টল করার জন্য নিচের কমান্ডটি ব্যবহার করুন:
npm install angular-google-charts
এটি ইনস্টল হওয়ার পর angular-google-charts লাইব্রেরি আপনার node_modules
ফোল্ডারে যুক্ত হয়ে যাবে।
এখন, Angular অ্যাপ্লিকেশনে GoogleChartsModule ব্যবহার করতে, app.module.ts
ফাইলে এটি ইমপোর্ট করুন:
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { AppComponent } from './app.component';
import { GoogleChartsModule } from 'angular-google-charts'; // GoogleChartsModule ইমপোর্ট
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
GoogleChartsModule // এখানে GoogleChartsModule যোগ করুন
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
এখন আমরা একটি Drilldown Chart তৈরি করব যেখানে প্রথমে একটি পি চার্ট প্রদর্শিত হবে এবং ইউজার একটি সেগমেন্টে ক্লিক করলে বিস্তারিত তথ্য দেখানো হবে।
app.component.ts
ফাইল:import { Component } from '@angular/core';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
title = 'Drilldown Chart Example';
chartType = 'PieChart'; // Chart Type
chartData = [
['Category', 'Amount'],
['Food', 100],
['Clothing', 150],
['Transportation', 200]
]; // Initial Data for Pie Chart
chartOptions = {
title: 'Expenses Breakdown',
width: 600,
height: 400
};
// Drilldown Data (when clicked on a category)
drilldownData = {
'Food': [
['Subcategory', 'Amount'],
['Fruits', 30],
['Vegetables', 40],
['Snacks', 30]
],
'Clothing': [
['Subcategory', 'Amount'],
['Shirts', 80],
['Jeans', 70],
['Shoes', 0]
],
'Transportation': [
['Subcategory', 'Amount'],
['Fuel', 100],
['Bus', 50],
['Taxi', 50]
]
};
// Function to handle Drilldown
drilldown(category: string) {
this.chartData = this.drilldownData[category];
this.chartOptions = {
title: `${category} Breakdown`,
width: 600,
height: 400
};
}
}
app.component.html
ফাইল:<h1>{{ title }}</h1>
<!-- Google Chart Component -->
<google-chart
[type]="chartType"
[data]="chartData"
[options]="chartOptions"
(click)="drilldown($event)">
</google-chart>
এখন, অ্যাপ্লিকেশনটি চালাতে নিচের কমান্ডটি ব্যবহার করুন:
ng serve
এটি ডিফল্টভাবে অ্যাপ্লিকেশনটি http://localhost:4200
এ রান করবে। ব্রাউজারে গিয়ে আপনি আপনার Drilldown Chart দেখতে পাবেন এবং যখন আপনি কোন সেগমেন্টে ক্লিক করবেন তখন সেই ক্যাটেগরির বিস্তারিত ডেটা প্রদর্শিত হবে।
Data Hierarchy ব্যবস্থাপনা করে আপনি সহজেই বিভিন্ন স্তরের ডেটা প্রদর্শন করতে পারেন। এতে আপনি প্রথমে মূল ডেটা দেখাতে পারেন এবং তারপর ব্যবহারকারী কোনো অংশে ক্লিক করার মাধ্যমে আরও বিস্তারিত ডেটা উপস্থাপন করতে পারেন। Drilldown ফিচার Pie Chart, Bar Chart, Column Chart, Tree Maps ইত্যাদিতে কার্যকরী হতে পারে।
আপনি Drilldown চার্টের জন্য আরও কাস্টমাইজেশন করতে পারেন যেমন:
chartOptions = {
title: `${category} Breakdown`,
width: 600,
height: 400,
colors: ['#ffcc00', '#ff6600', '#ff3333'], // Colors for subcategories
animation: {
startup: true,
easing: 'inAndOut',
duration: 1000
}
};
Drilldown Chart একটি শক্তিশালী ফিচার যা ইউজারকে ডেটার সারাংশ থেকে বিস্তারিত স্তরে যাওয়ার সুযোগ দেয়। Google Charts API ব্যবহার করে Pie Chart, Bar Chart, Column Chart ইত্যাদিতে Drilldown ফিচার তৈরি করা যায় এবং Data Hierarchy ব্যবস্থাপনার মাধ্যমে আপনি স্তরভিত্তিক ডেটা উপস্থাপন করতে পারেন। Angular অ্যাপে Drilldown Chart তৈরি করতে আমরা event binding এবং chartData ব্যবহৃত করেছি, যার মাধ্যমে ইউজার ইন্টারঅ্যাকশন অনুযায়ী চার্টের ডেটা আপডেট হচ্ছে।
Data Exploration হচ্ছে ডেটার গভীরে প্রবেশ করা এবং বিভিন্ন দৃষ্টিকোণ থেকে সেটি বিশ্লেষণ করা। এটি ডেটা সাইন্সের একটি অত্যন্ত গুরুত্বপূর্ণ অংশ, যেখানে ডেটা থেকে প্যাটার্ন, ট্রেন্ড, এবং সম্পর্ক বের করা হয়। Google Charts API ব্যবহার করে আপনি Data Exploration এর জন্য শক্তিশালী এবং ইন্টারঅ্যাকটিভ চার্ট তৈরি করতে পারেন। এই প্রক্রিয়াতে আপনি সহজেই ডেটা ফিল্টার, জুম ইন, বা বিভিন্ন পর্যায়ে বিশ্লেষণ করতে পারেন।
এখানে আমরা বিভিন্ন Chart Types (যেমন: Bar Chart, Line Chart, Pie Chart, Scatter Chart) এবং Interactivity ফিচারের মাধ্যমে কিভাবে ডেটা এক্সপ্লোরেশন করা যায়, সেটি দেখাবো।
প্রথমে একটি নতুন Angular প্রজেক্ট তৈরি করুন এবং Google Charts ইন্সটল করুন।
ng new data-exploration
cd data-exploration
npm install angular-google-charts
এটি ইন্সটল হওয়ার পর angular-google-charts আপনার node_modules
ফোল্ডারে যুক্ত হয়ে যাবে।
এখন, app.module.ts
ফাইলে GoogleChartsModule ইমপোর্ট করতে হবে।
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { AppComponent } from './app.component';
import { GoogleChartsModule } from 'angular-google-charts'; // GoogleChartsModule ইমপোর্ট
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
GoogleChartsModule // এখানে GoogleChartsModule যোগ করুন
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
এখন আমরা Data Exploration এর জন্য বিভিন্ন ধরনের চার্ট এবং ইন্টারঅ্যাকটিভ ফিচার তৈরি করব। আমরা উদাহরণস্বরূপ একটি Bar Chart, Pie Chart, এবং Scatter Chart তৈরি করব, যেখানে ইউজার ডেটা এক্সপ্লোর করতে পারবেন।
import { Component } from '@angular/core';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
title = 'Data Exploration Example';
// Chart Types
chartTypeBar = 'BarChart';
chartTypePie = 'PieChart';
chartTypeScatter = 'ScatterChart';
// Data for different charts
chartDataBar = [
['Category', 'Value'],
['Work', 8],
['Eat', 2],
['Commute', 2],
['Watch TV', 2],
['Sleep', 8]
];
chartDataPie = [
['Task', 'Hours per Day'],
['Work', 8],
['Eat', 2],
['Commute', 2],
['Watch TV', 2],
['Sleep', 8]
];
chartDataScatter = [
['Time', 'Sales'],
[1, 20],
[2, 40],
[3, 60],
[4, 80],
[5, 100]
];
// Chart Options
chartOptionsBar = {
title: 'Work vs Leisure Time',
hAxis: { title: 'Category' },
vAxis: { title: 'Hours' },
width: 600,
height: 400
};
chartOptionsPie = {
title: 'Daily Activities Distribution',
pieHole: 0.4,
width: 600,
height: 400
};
chartOptionsScatter = {
title: 'Sales Over Time',
hAxis: { title: 'Time' },
vAxis: { title: 'Sales' },
width: 600,
height: 400
};
// Interaction Methods
onChartClick(event) {
alert('You clicked on a chart point');
}
onChartSelection(event) {
const selection = event.selection;
if (selection.length > 0) {
const selectedItem = selection[0];
const rowIndex = selectedItem.row;
alert(`You selected: ${this.chartDataBar[rowIndex][0]} with value: ${this.chartDataBar[rowIndex][1]}`);
}
}
}
এখন, app.component.html
ফাইলে আমরা Bar Chart, Pie Chart, এবং Scatter Chart রেন্ডার করব এবং তাদের ইন্টারঅ্যাকশন হ্যান্ডেল করব।
<h1>{{ title }}</h1>
<!-- Bar Chart -->
<google-chart
[type]="chartTypeBar"
[data]="chartDataBar"
[options]="chartOptionsBar"
(chartClick)="onChartClick($event)">
</google-chart>
<!-- Pie Chart -->
<google-chart
[type]="chartTypePie"
[data]="chartDataPie"
[options]="chartOptionsPie">
</google-chart>
<!-- Scatter Chart -->
<google-chart
[type]="chartTypeScatter"
[data]="chartDataScatter"
[options]="chartOptionsScatter"
(chartSelection)="onChartSelection($event)">
</google-chart>
আমরা Chart Click এবং Chart Selection ইভেন্টগুলি হ্যান্ডেল করছি:
Real-Time Data Exploration এর জন্য আপনি setInterval
বা WebSocket
ব্যবহার করে ডেটা আপডেট করতে পারেন, যাতে চার্টের ডেটা ডায়নামিকভাবে পরিবর্তিত হয়। আমরা setInterval
ব্যবহার করে কিছু ডেটা পরিবর্তন করে দেখাবো।
ngOnInit() {
setInterval(() => {
this.updateChartData();
}, 5000); // Update data every 5 seconds
}
updateChartData() {
// Simulate data update by changing the values randomly
this.chartDataBar = this.chartDataBar.map(item => {
if (Array.isArray(item)) {
return [item[0], Math.floor(Math.random() * 10) + 1];
}
return item;
});
}
এখন, প্রতিটি 5 সেকেন্ড পর Bar Chart এর ডেটা আপডেট হবে এবং চার্টটি রিফ্রেশ হবে।
Data Exploration এর জন্য Google Charts API এবং Angular ব্যবহার করে আপনি Scatter Plot, Pie Chart, Bar Chart, এবং Bubble Chart সহ বিভিন্ন চার্ট তৈরি করতে পারেন। ডেটা আপডেট এবং রিফ্রেশ করার জন্য আপনি Real-Time Data আপডেট এবং ইন্টারঅ্যাকটিভ ইভেন্ট (যেমন Chart Click এবং Chart Selection) ব্যবহার করে ইউজারের সাথে আরও ইন্টারঅ্যাকটিভ এবং ডায়নামিক যোগাযোগ তৈরি করতে পারেন।
এই প্রক্রিয়া আপনাকে ডেটা ভিজুয়ালাইজেশন ও এক্সপ্লোরেশন করতে এবং আরো বিস্তারিত তথ্য বের করতে সহায়তা করবে।
Parent এবং Child Data Visualization হল একটি কনসেপ্ট যেখানে আপনি একাধিক সম্পর্কিত ডেটা সেটের মধ্যে সম্পর্ক প্রদর্শন করতে চান। এটি প্রায়শই hierarchical (পদে পদে সম্পর্কিত) ডেটা উপস্থাপনা করতে ব্যবহৃত হয়, যেমন Parent-Child Relationship।
Google Charts API এবং Angular ব্যবহার করে, আপনি Parent এবং Child ডেটা সম্পর্কের ভিজুয়ালাইজেশন করতে পারেন। এখানে, আমরা TreeMap এবং Org Chart এর মত বিভিন্ন চার্ট ব্যবহার করে এই কনসেপ্টটি বুঝাবো।
TreeMap চার্ট একটি হায়ারার্কিকাল ডেটার ভিজুয়ালাইজেশন প্রকার, যেখানে আপনি প্যারেন্ট এবং চাইল্ড ডেটা হায়ারার্কির মাধ্যমে প্রদর্শন করতে পারেন। এতে প্যারেন্ট আইটেমগুলির জন্য বড় ব্লক এবং চাইল্ড আইটেমগুলির জন্য ছোট ব্লক ব্যবহৃত হয়।
ধরা যাক, আমরা একটি TreeMap Chart তৈরি করতে চাই, যেখানে একটি কোম্পানির বিভাগের মধ্যে কর্মী এবং তাদের পারফরম্যান্সের সম্পর্ক দেখানো হবে।
app.component.ts
ফাইল:import { Component } from '@angular/core';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
title = 'Parent and Child Data Visualization';
chartType = 'TreeMap'; // Chart Type: TreeMap
chartData = [
['ID', 'Parent', 'Name', 'Value'],
['1', null, 'Company', 0],
['2', '1', 'Sales', 10],
['3', '1', 'Marketing', 5],
['4', '2', 'Inside Sales', 4],
['5', '2', 'Outside Sales', 6],
['6', '3', 'Digital Marketing', 4],
['7', '3', 'Traditional Marketing', 1]
]; // TreeMap Data: Parent and Child Relationship
chartOptions = {
title: 'Company Organizational Structure',
minColor: '#f0f0f0',
midColor: '#ffff00',
maxColor: '#ff0000',
headerColor: '#cccccc',
fontColor: 'black',
fontSize: 14,
width: 600,
height: 400
};
}
app.component.html
ফাইল:<h1>{{ title }}</h1>
<!-- Google Chart (TreeMap) -->
<google-chart
[type]="chartType"
[data]="chartData"
[options]="chartOptions">
</google-chart>
এখানে:
Company
হলো প্যারেন্ট আইটেম এবং তার অধীনে Sales এবং Marketing শিশু বিভাগের তথ্য রয়েছে।এটি একটি TreeMap চার্ট তৈরি করবে যেখানে কোম্পানির বিভাগগুলি হায়ারার্কিক্যালভাবে প্রদর্শিত হবে এবং তাদের সম্পর্ক দেখা যাবে।
Org Chart একটি হায়ারার্কিকাল চার্ট যা প্রতিষ্ঠানের মধ্যে বিভিন্ন স্তরের সম্পর্ক প্রদর্শন করতে ব্যবহৃত হয়। এটি বিশেষ করে Parent-Child Relationship দেখানোর জন্য আদর্শ।
ধরা যাক, আমরা একটি কোম্পানির Org Chart তৈরি করতে চাই, যেখানে ম্যানেজারদের অধীনে তাদের টিম সদস্যদের সম্পর্ক দেখানো হবে।
app.component.ts
ফাইল:import { Component } from '@angular/core';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
title = 'Company Org Chart';
chartType = 'OrgChart'; // Chart Type: Org Chart
chartData = [
['Name', 'Manager', 'ToolTip'],
['John', '', 'CEO'],
['Sarah', 'John', 'VP Sales'],
['Mike', 'Sarah', 'Sales Manager'],
['David', 'Sarah', 'Marketing Manager'],
['James', 'Mike', 'Sales Representative'],
['Paul', 'Mike', 'Sales Representative']
]; // Org Chart Data: Parent and Child Relationship
chartOptions = {
title: 'Company Organization Chart',
width: 600,
height: 400,
allowHtml: true
};
}
app.component.html
ফাইল:<h1>{{ title }}</h1>
<!-- Google Chart (Org Chart) -->
<google-chart
[type]="chartType"
[data]="chartData"
[options]="chartOptions">
</google-chart>
এখানে:
এটি একটি Org Chart তৈরি করবে, যেখানে কোম্পানির ম্যানেজার এবং তাদের অধীনে কর্মীরা হায়ারার্কিক্যালভাবে প্রদর্শিত হবে।
আপনি TreeMap এবং OrgChart কাস্টমাইজ করতে পারেন যেভাবে আপনি চাইবেন, যেমন:
chartOptions = {
title: 'Custom Org Chart',
width: 600,
height: 400,
allowHtml: true,
nodeClass: 'node-class', // Custom CSS Class for nodes
tooltip: { isHtml: true }, // Enable HTML tooltips
chartArea: { width: '80%', height: '80%' },
colors: ['#ff0000', '#00ff00', '#0000ff', '#ff9900']
};
এখানে:
Parent-Child Data Visualization হচ্ছে ডেটার মধ্যে হায়ারার্কিক্যাল সম্পর্ক প্রদর্শন করা। আপনি Google Charts API ব্যবহার করে সহজেই TreeMap এবং Org Chart তৈরি করতে পারেন, যা প্যারেন্ট এবং চাইল্ড ডেটার সম্পর্ক দেখাতে সহায়তা করে। এই চার্টগুলি দৃষ্টি আকর্ষণীয় এবং ইন্টারঅ্যাকটিভ হওয়ায় ডেটা ভিজুয়ালাইজেশন আরো কার্যকরী হয়।
Drilldown এবং Drill-Up হল একটি ইন্টারঅ্যাকটিভ চার্ট বৈশিষ্ট্য যা ব্যবহারকারীদের বৃহত্তর বা সূক্ষ্ম স্তরের ডেটাতে প্রবেশ করার অনুমতি দেয়। Drilldown ব্যবহৃত হয় যখন ব্যবহারকারী চার্টের কোনো অংশে ক্লিক করে ডেটার আরও বিস্তারিত বা গভীর স্তরে প্রবেশ করেন, এবং Drill-Up ব্যবহৃত হয় যখন ব্যবহারকারী আবার পূর্ববর্তী স্তরে ফিরে আসেন। এই ইন্টারঅ্যাকশনগুলো সাধারণত pie charts, bar charts, বা hierarchical charts-এ ব্যবহৃত হয়।
Google Charts API এ Drilldown এবং Drill-Up ইভেন্ট হ্যান্ডলিং খুবই সহজ এবং ইন্টারঅ্যাকটিভ চার্ট তৈরি করতে ব্যবহৃত হয়। এখানে আমরা আলোচনা করব কিভাবে Angular অ্যাপ্লিকেশনগুলিতে Drilldown এবং Drill-Up ইভেন্ট হ্যান্ডল করা যায়।
এখানে আমরা একটি Pie Chart ব্যবহার করব যেখানে Drilldown এবং Drill-Up ফিচার ব্যবহার করা হবে। প্রথমে, আমাদের কিছু ডেটা তৈরি করতে হবে, তারপর আমরা ইউজারের ক্লিক ইভেন্ট ট্র্যাক করে Drilldown এবং Drill-Up কার্যকলাপ ইমপ্লিমেন্ট করব।
প্রথমে একটি Angular অ্যাপ তৈরি করুন (যদি না থাকে):
ng new google-charts-drilldown
cd google-charts-drilldown
এখন আমরা angular-google-charts লাইব্রেরি ইনস্টল করব যা Google Charts এর সাথে ইন্টিগ্রেশন করবে।
npm install angular-google-charts
এটি ইনস্টল হওয়ার পর angular-google-charts আপনার node_modules
ফোল্ডারে যুক্ত হয়ে যাবে।
এখন, app.module.ts
ফাইলে GoogleChartsModule ইমপোর্ট করতে হবে:
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { AppComponent } from './app.component';
import { GoogleChartsModule } from 'angular-google-charts';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
GoogleChartsModule // GoogleChartsModule ইমপোর্ট করা হয়েছে
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
এখন, Drilldown এবং Drill-Up ফিচার হ্যান্ডল করার জন্য আমাদের app.component.ts
এবং app.component.html
ফাইলগুলো কনফিগার করতে হবে।
app.component.ts
ফাইল:import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent implements OnInit {
title = 'Drilldown and Drill-Up Example';
chartType = 'PieChart'; // Chart Type
chartData: any[] = [
['Task', 'Hours per Day'],
['Work', 8],
['Eat', 2],
['Commute', 2],
['Watch TV', 2],
['Sleep', 8]
]; // Initial Chart Data
chartOptions = {
title: 'My Daily Activities',
pieHole: 0.4, // Doughnut Style
width: 600,
height: 400
};
// Drilldown Data
drilldownData: any[] = [
['Sub-task', 'Hours per Day'],
['Emails', 2],
['Meetings', 3],
['Coding', 3]
];
// Drilldown Function
onDrilldown(event: any) {
const selectedItem = event.chart.getSelection()[0];
if (selectedItem) {
// If 'Work' is clicked, show the drilldown data
if (event.chart.getDataTable().getValue(selectedItem.row, 0) === 'Work') {
this.chartData = this.drilldownData;
this.chartOptions = {
title: 'Work Details',
pieHole: 0.4,
width: 600,
height: 400
};
}
}
}
// Drill-Up Function
onDrillUp() {
this.chartData = [
['Task', 'Hours per Day'],
['Work', 8],
['Eat', 2],
['Commute', 2],
['Watch TV', 2],
['Sleep', 8]
];
this.chartOptions = {
title: 'My Daily Activities',
pieHole: 0.4,
width: 600,
height: 400
};
}
ngOnInit() {
google.charts.load('current', { packages: ['corechart', 'pie'] });
google.charts.setOnLoadCallback(this.drawChart.bind(this));
}
drawChart() {
const data = google.visualization.arrayToDataTable(this.chartData);
const chart = new google.visualization.PieChart(document.getElementById('chart_div'));
google.visualization.events.addListener(chart, 'select', this.onDrilldown.bind(this)); // Add Drilldown Event
chart.draw(data, this.chartOptions);
}
}
এখন, আমাদের app.component.html ফাইলে চার্ট রেন্ডার এবং ড্রিলডাউন, ড্রিল-আপ বাটন যুক্ত করতে হবে।
app.component.html
:<h1>{{ title }}</h1>
<!-- Google Chart কম্পোনেন্ট -->
<google-chart
[type]="chartType"
[data]="chartData"
[options]="chartOptions">
</google-chart>
<!-- Drill Up Button -->
<button (click)="onDrillUp()" style="margin-top: 20px;">Drill Up</button>
<!-- Chart Container -->
<div id="chart_div" style="width: 900px; height: 500px;"></div>
এখন, অ্যাপ্লিকেশনটি চালানোর জন্য নিচের কমান্ডটি ব্যবহার করুন:
ng serve
এটি ডিফল্টভাবে অ্যাপ্লিকেশনটি http://localhost:4200
এ রান করবে। ব্রাউজারে গিয়ে আপনি Drilldown এবং Drill-Up ফিচারগুলি পরীক্ষা করতে পারবেন। যখন আপনি Work টাস্কে ক্লিক করবেন, তখন ড্রিলডাউন ডেটা দেখাবে এবং "Drill Up" বাটন ক্লিক করলে মূল ডেটা ফিরে আসবে।
আপনি Drilldown এবং Drill-Up ফিচারের ডেটা কাস্টমাইজ করতে পারেন:
chartOptions
ব্যবহার করে চার্টের স্টাইল এবং আকার পরিবর্তন করতে পারেন।Drilldown এবং Drill-Up ফিচারগুলি ব্যবহার করে আপনি Google Charts এর মধ্যে ইন্টারঅ্যাকটিভ ভিজুয়ালাইজেশন তৈরি করতে পারেন। Angular এর মাধ্যমে Drilldown ইভেন্ট হ্যান্ডলিং এবং Drill-Up ব্যবহারের মাধ্যমে ডেটাকে সহজে বিস্তারিত বা মূল স্তরে ফিরিয়ে আনতে পারেন। এটি ব্যবহারকারীদের জন্য আরও ডায়নামিক এবং ইন্টারঅ্যাকটিভ চার্ট তৈরি করতে সহায়ক।
Read more